package com.sun.talk.service

import com.sun.talk.base.BaseService
import com.sun.talk.entity.User
import com.sun.talk.entity.vo.MyFriendVO
import com.sun.talk.entity.vo.FriendsRequestVO
import com.sun.talk.netty.ChatMsg

interface UserService :BaseService<User>{
    /**
     * 判断用户名是否存在
    */
    fun queryUserByUsername(username:String):User?

    /**
     * 判断用户名是否存在
     */
    fun queryUserForLogin(username:String,password:String):User?

    /**
     * 保存用户
     */
    fun saveUser(user:User):User?

    /**
     * 更新用户信息
     */
    fun updateUserInfo(user: User):User

    /**
     * 主键查询用户
     */
    fun queryUserById(userId: String):User

    /**
     * 搜索好友前置条件
     */
    fun preconditionSearchFriends(myUserId:String,friendUserName:String):Int

    /**
     * 发送添加好友请求
     */
    fun sendFriendRequest(myUserId:String,friendUserName:String)

    /**
     * 好友请求列表
     */
    fun queryFriendRequestList(acceptUserId:String):List<FriendsRequestVO>

    /**
     * 删除好友请求
     */
    fun deleteFriendRequest(sendUserId: String, acceptUserId: String)

    /**
     * 通过好友请求
     */
    fun passFriendRequest(sendUserId: String, acceptUserId: String)

    /**
     * 好友列表
     */
    fun queryFriendList(userId: String):List<MyFriendVO>

    /**
     * 保存消息
     */
    fun saveMsg(chatMsg: ChatMsg):String

    /**
     * 批量更新消息签收状态
     */
    fun updateMsgSigned(msgIds: List<String>)

    /**
     * 获取未签收消息列表
     */
    fun queryUnReadMsgList(acceptUserId: String):List<com.sun.talk.entity.ChatMsg>
}